mod quote_mgr;
mod broadcast_handler;
mod app_config;

use tracing_subscriber;
use crate::quote_mgr::QuoteMgr;
use crate::app_config::AppConfig;

fn init_tracing() {
    tracing_subscriber::fmt::init();
}

#[tokio::main]
async fn main() -> anyhow::Result<()> {

    init_tracing();
    // 加载配置
    let config = AppConfig::load(None)?;
    println!("config loaded: {:?}", config);

    // ✅ 初始化行情订阅模块
    let (mut qm, rx) = QuoteMgr::new(config);

    qm.init(rx).await;

    // ✅ 保持主循环
    loop {
        tokio::time::sleep(std::time::Duration::from_secs(60)).await;
    }
}
